package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.cp.api.entity.wm.WorkMsgEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: yangpengwei
 * @time: 2020/11/25 5:11 下午
 * @description 会话内容存档业务
 */
public interface IWorkMsgService extends IService<WorkMsgEntity> {

    /**
     * 对所有开启会话内容存档的企业进行数据同步
     */
    void onAsyncMsg();

    /**
     * 同步会话内容数据
     *
     * @param corpId 企业 id
     * @return 是否同步成功
     */
    boolean onAsyncMsg(int corpId);

    List<WorkMsgEntity> getWorkMessagesByMsgId(List<WorkMsgEntity> value);

    List<WorkMsgEntity> getWorkMessagesRangeByCorpIdWxRoomId(String corpId, String wxRoomId, Long seq, int i,long startTime,long endTime);

    List<WorkMsgEntity> getWorkMessagesRangeByCorpId(String corpId, String from, String tolist, Long seq, int i,long startTime,long endTime);

    String getLatest(String wxExternalUserid, ArrayList<Object> list);

    List<WorkMsgEntity> isTouchqt(Integer corpId, String roomWxId, long compareUnix);

    Integer getMsgNum(long l);

    Integer isTouchOver(Integer corpId, List<Integer> msgIds, Long weekBegin);

    List<WorkMsgEntity> page(String wxid, Integer type);

    /**
     * 查询有效联系客户数
     * @param type      查询类型 1-近7日 2-近30日 否则-今日
     * @param wxUserId  微信用户id
     * @return
     */
    Integer contactEffective(Integer type, String wxUserId);

    /**
     * 获取最后一条信息的 seq
     *
     * @return seq
     */
    long findLastSeq(boolean fromCache);

    /**
     * 清除过期会话数据
     * @return
     */
    boolean clearExpireMsg();

}
